﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using LeadThing.AbpZeroTemplate.WorkFlow_Run_Processs.Dtos;
using LeadThing.AbpZeroTemplate.Dto;

namespace LeadThing.AbpZeroTemplate.WorkFlow_Run_Processs
{
    /// <summary>
    /// 实例节点流转明细服务接口
    /// </summary>
    public interface IWorkFlow_Run_ProcessAppService : IApplicationService
    {
        #region 实例节点流转明细管理

        /// <summary>
        /// 根据查询条件获取实例节点流转明细分页列表
        /// </summary>
        Task<PagedResultDto<WorkFlow_Run_ProcessListDto>> GetPagedWorkFlow_Run_ProcesssAsync(GetWorkFlow_Run_ProcessInput input);

        /// <summary>
        /// 通过Id获取实例节点流转明细信息进行编辑或修改 
        /// </summary>
        Task<GetWorkFlow_Run_ProcessForEditOutput> GetWorkFlow_Run_ProcessForEditAsync(NullableIdDto<long> input);

        /// <summary>
        /// 通过指定id获取实例节点流转明细ListDto信息
        /// </summary>
        Task<WorkFlow_Run_ProcessListDto> GetWorkFlow_Run_ProcessByIdAsync(EntityDto<long> input);



        /// <summary>
        /// 新增或更改实例节点流转明细
        /// </summary>
        Task CreateOrUpdateWorkFlow_Run_ProcessAsync(CreateOrUpdateWorkFlow_Run_ProcessInput input);





        /// <summary>
        /// 新增实例节点流转明细
        /// </summary>
        Task<WorkFlow_Run_ProcessEditDto> CreateWorkFlow_Run_ProcessAsync(WorkFlow_Run_ProcessEditDto input);

        /// <summary>
        /// 更新实例节点流转明细
        /// </summary>
        Task UpdateWorkFlow_Run_ProcessAsync(WorkFlow_Run_ProcessEditDto input);

        /// <summary>
        /// 删除实例节点流转明细
        /// </summary>
        Task DeleteWorkFlow_Run_ProcessAsync(EntityDto<long> input);

        /// <summary>
        /// 批量删除实例节点流转明细
        /// </summary>
        Task BatchDeleteWorkFlow_Run_ProcessAsync(List<long> input);

        #endregion

        #region Excel导出功能

        /// <summary>
        /// 获取实例节点流转明细信息转换为Excel
        /// </summary>
        /// <returns></returns>
        Task<FileDto> GetWorkFlow_Run_ProcessToExcel();

        #endregion

    }
}
